{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<!--BOOK_INFORMATION-->\n",
    "<a href=\"https://www.packtpub.com/big-data-and-business-intelligence/machine-learning-opencv\" target=\"_blank\"><img align=\"left\" src=\"data/cover.jpg\" style=\"width: 76px; height: 100px; background: white; padding: 1px; border: 1px solid black; margin-right:10px;\"></a>\n",
    "*This notebook contains an excerpt from the book [Machine Learning for OpenCV](https://www.packtpub.com/big-data-and-business-intelligence/machine-learning-opencv) by Michael Beyeler.\n",
    "The code is released under the [MIT license](https://opensource.org/licenses/MIT),\n",
    "and is available on [GitHub](https://github.com/mbeyeler/opencv-machine-learning).*\n",
    "\n",
    "*Note that this excerpt contains only the raw code - the book is rich with additional explanations and illustrations.\n",
    "If you find this content useful, please consider supporting the work by\n",
    "[buying the book](https://www.packtpub.com/big-data-and-business-intelligence/machine-learning-opencv)!*"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<!--NAVIGATION-->\n",
    "< [Building Our First Decision Tree](05.01-Building-Our-First-Decision-Tree.ipynb) | [Contents](../README.md) | [Using Decision Trees for Regression](05.03-Using-Decision-Trees-for-Regression.ipynb) >"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Using Decision Trees to Diagnose Breast Cancer\n",
    "\n",
    "Now that we have built our first decision trees, it's time to turn our attention to a real dataset: The Breast Cancer Wisconsin dataset <https://archive.ics.uci.edu/ml/datasets/Breast+Cancer+Wisconsin+(Diagnostic)>.\n",
    "\n",
    "In order to make the take feasible, the researchers performed feature extraction on the images, like we did in Chapter 4, Representing Data and Engineering Features. They went through a total of 569 images, and extracted 30 different features that describe the characteristics of the cell nuclei present in the images, including:\n",
    "\n",
    "- cell nucleus texture (represented by the standard deviation of the gray-scale values)\n",
    "\n",
    "- cell nucleus size (calculated as the mean of distances from center to points on the perimeter)\n",
    "\n",
    "- tissue smoothness (local variation in radius lengths)\n",
    "\n",
    "- tissue compactness\n",
    "\n",
    "The goal of the research was then to classify tissue samples into benign and malignant (a binary classification task)."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Loading the dataset\n",
    "\n",
    "The full dataset is part of Scikit-Learn's example datasets:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn import datasets\n",
    "data = datasets.load_breast_cancer()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As in previous examples, all data is contained in a 2-D feature matrix data.data, where the rows represent data samples, and the columns are the feature values:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(569, 30)"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.data.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "With a look at the provided feature names, we recognize some that we mentioned above:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(['mean radius', 'mean texture', 'mean perimeter', 'mean area',\n",
       "       'mean smoothness', 'mean compactness', 'mean concavity',\n",
       "       'mean concave points', 'mean symmetry', 'mean fractal dimension',\n",
       "       'radius error', 'texture error', 'perimeter error', 'area error',\n",
       "       'smoothness error', 'compactness error', 'concavity error',\n",
       "       'concave points error', 'symmetry error', 'fractal dimension error',\n",
       "       'worst radius', 'worst texture', 'worst perimeter', 'worst area',\n",
       "       'worst smoothness', 'worst compactness', 'worst concavity',\n",
       "       'worst concave points', 'worst symmetry', 'worst fractal dimension'], \n",
       "      dtype='<U23')"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.feature_names"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Since this is a binary classification task, we expect to find exactly two target names:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(['malignant', 'benign'], \n",
       "      dtype='<U9')"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.target_names"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's split the dataset into training and test sets using a healthy 80-20 split:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "import sklearn.model_selection as ms\n",
    "X_train, X_test, y_train, y_test = ms.train_test_split(data.data, data.target, test_size=0.2, random_state=42)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "((455, 30), (114, 30))"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train.shape, X_test.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Building the decision tree"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn import tree\n",
    "dtc = tree.DecisionTreeClassifier(random_state=42)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "DecisionTreeClassifier(class_weight=None, criterion='gini', max_depth=None,\n",
       "            max_features=None, max_leaf_nodes=None,\n",
       "            min_impurity_split=1e-07, min_samples_leaf=1,\n",
       "            min_samples_split=2, min_weight_fraction_leaf=0.0,\n",
       "            presort=False, random_state=42, splitter='best')"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dtc.fit(X_train, y_train)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Since we did not specify any pre-pruning parameters, we would expect this decision tree to grow quite large and result in a perfect score on the training set:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1.0"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dtc.score(X_train, y_train)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "However, to our surprise, the test error is not too shabby, either:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.94736842105263153"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dtc.score(X_test, y_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "with open(\"tree.dot\", 'w') as f:\n",
    "    f = tree.export_graphviz(dtc, out_file=f,\n",
    "                             feature_names=data.feature_names,\n",
    "                             class_names=data.target_names)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now we want to do some model exploration. For example, we mentioned above that the depth of a tree influences its performance. If we wanted to study this dependency more systematically, we could repeat building the tree for different values of `max_depth`:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "max_depths = np.array([1, 2, 3, 5, 7, 9, 11])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For each of these values, we want to run the full model cascade from start to finish. We also want to record the train and test scores. We do this in a for loop:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "train_score = []\n",
    "test_score = []\n",
    "for d in max_depths:\n",
    "    dtc = tree.DecisionTreeClassifier(max_depth=d, random_state=42)\n",
    "    dtc.fit(X_train, y_train)\n",
    "    train_score.append(dtc.score(X_train, y_train))\n",
    "    test_score.append(dtc.score(X_test, y_test))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can plot the scores as a function of the tree depth using Matplotlib:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "plt.style.use('ggplot')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x7f13a6747358>"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nAwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f13a87c9e48>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(10, 6))\n",
    "plt.plot(max_depths, train_score, 'o-', linewidth=3, label='train')\n",
    "plt.plot(max_depths, test_score, 's-', linewidth=3, label='test')\n",
    "plt.xlabel('max_depth')\n",
    "plt.ylabel('score')\n",
    "plt.ylim(0.85, 1.1)\n",
    "plt.legend()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's do one more. What about the minimum numbers of samples required to make a node a leaf node?\n",
    "\n",
    "We repeat the procedure from above:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "train_score = []\n",
    "test_score = []\n",
    "min_samples = np.array([2, 4, 8, 16, 32])\n",
    "for s in min_samples:\n",
    "    dtc = tree.DecisionTreeClassifier(min_samples_leaf=s, random_state=42)\n",
    "    dtc.fit(X_train, y_train)\n",
    "    train_score.append(dtc.score(X_train, y_train))\n",
    "    test_score.append(dtc.score(X_test, y_test))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This leads to a plot that looks quite different from the one before:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x7f13a668a5f8>"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nGKYkRxEeYvftoL1AjZuIiIi0W+Ehdm4fEMvM89Faaw6Wsi2Ao7XUuImIiEi7ZzMMRnQNZ0TX8IvR\nWkfKqT7njtaqc5r881AZ/zxUxpCEMGamRjOme8Q3Rmv5GzVuIiIi4lc8orVySzlWduVorel9o4nu\nINFaHeO3EBERkYDTNFpr3/lorS86eLSWGjcRERHxa4ZhMDghjMEtiNbq5wjlNj+O1vK/EYuIiIhc\nwYVorWV3pvBkRhKpjtBL3j9UXMfi7FM8tOor3t1RSFFNvY9Gem10xU1EREQ6nMujtdbmlvJZXpNo\nrbMN/L+9xfxtXzFj/ShaS42biIiIdGj9HJ15Ir0z99/o5D+Hy/nkUClF56O1XE2jtaI6MaN/NJP6\nRLXbaC01biIiIhIQokKDmDPEwaxBsc1Ha5WfZWnOGZbmnGn289Ghdt75bj9vDbdZatxEREQkoDSN\n1jpedpa1uaVsOFpOndO86ufKzj/s4Evt8zqgiIiIiBf0jO7Ej0cnsmxWX3448lt0jQj29ZCuSo2b\niIiIBLwL0VpLbk/29VCuSo2biIiIyHm2dv5UqRo3ERERET+hxk1ERESkiehQe6te9yY9VSoiIiLS\nhK+X/LgaXXETERER8RNq3ERERET8hBo3ERERET+hxk1ERETET6hxExEREfETatxERERE/IQaNxER\nERE/ocZNRERExE+ocRMRERHxE2rcRERERPyEGjcRERERP6HGTURERMRPqHETERER8RNq3ERERET8\nhBo3ERERET+hxk1ERETET6hxExEREfETatxERERE/IQaNxERERE/ocZNRERExE+ocRMRERHxE2rc\nRERERPyEGjcRERERP6HGTURERMRPqHETERER8RNq3ERERET8hBo3ERERET+hxk1ERETET6hxExER\nEfETatxERERE/IQaNxERERE/EeStHe3YsYPly5fjcrmYOnUqd9555yXvFxYWsnTpUioqKggPD2f+\n/Pk4HA4AsrKy+Pvf/w7A7NmzmTRpkreGLSIiItJueOWKm8vlYtmyZTz77LMsXryYjRs3cvLkyUu2\nWbFiBRMmTGDRokXMmTOH9957D4Cqqio++OADFixYwIIFC/jggw+oqqryxrBFRERE2hWvNG6HDx8m\nMTGRhIQEgoKCyMjIYMuWLZdsc/LkSYYOHQrA4MGD2bp1K+C+Ujds2DDCw8MJDw9n2LBh7NixwxvD\nFhEREWlXvNK4lZSUNE57AjgcDkpKSi7ZplevXmzevBmAnJwcamtrqays9PhsbGysx2dFREREAoFX\n7nEzTdPjNcMwLvl+7ty5vP3222RlZTFw4EBiY2Ox2+3N/rzLPwuQmZlJZmYmAAsXLqRr164WjDyw\nqGbWUj2tp5paS/W0nmpqLdXTk1euuDkcDoqLixu/Ly4uJiYm5pJtYmNj+fnPf87LL7/MvffeC0BY\nWBixsbGXfLakpMTjswDTpk1j4cKFLFy4sI1+i47t6aef9vUQOhTV03qqqbVUT+upptZSPZvnlcYt\nJSWFU6dOUVBQgNPpJDs7m7S0tEu2qaiowOVyAbBq1SomT54MwPDhw9m5cydVVVVUVVWxc+dOhg8f\n7o1hi4iIiLQrXpkqtdvtPPjgg7z00ku4XC4mT55Mjx49eP/990lJSSEtLY19+/bx3nvvYRgGAwcO\n5KGHHgIgPDyc7373uzzzzDMAzJkzh/DwcG8MW0RERKRdMczmbkCTgJOZmcm0adN8PYwOQ/W0nmpq\nLdXTeqqptVTP5qlxExEREfETirwSERER8RNei7yS9mnevHmEhoZis9mw2+16KvcavPnmm3z55ZdE\nRUXx6quvAu7Ej8WLF1NYWEh8fDxPPvmk7s1soebquXLlStatW0dkZCQA9957LyNGjPDlMP1KUVER\nS5YsoaysDMMwmDZtGjNmzNBxeo2uVE8dp9fu3Llz/PrXv8bpdNLQ0MDYsWO5++67KSgo4PXXX6eq\nqoo+ffowf/58goICu3XRVGmAmzdvHr/5zW8aTzTSevv27SM0NJQlS5Y0Nhrvvvsu4eHh3HnnnXz4\n4YdUVVVx3333+Xik/qG5eq5cuZLQ0FDuuOMOH4/OP5WWllJaWkpycjK1tbU8/fTT/OIXvyArK0vH\n6TW4Uj2zs7N1nF4j0zQ5e/YsoaGhOJ1OnnvuOe6//37+8Y9/MGbMGMaNG8fvf/97evfuzU033eTr\n4fqUpkpFrtOgQYM8rlJs2bKFiRMnAjBx4kSPiDe5subqKdcnJiaG5ORkADp37ky3bt0oKSnRcXqN\nrlRPuXaGYRAaGgpAQ0MDDQ0NGIbB3r17GTt2LACTJk3SMYqmSgV46aWXAJg+fbqe4LFIeXl540LR\nMTExVFRU+HhE/u9f//oXn332GcnJyXz/+99Xc3eNCgoKOHr0KH379tVxaoGm9Txw4ICO0+vgcrl4\n6qmnOH36NDfffDMJCQmEhYU1pigp8tJNjVuAe+GFF4iNjaW8vJwXX3yRrl27MmjQIF8PS+QSN910\nE3PmzAHg/fff509/+hOPPvqoj0flf+rq6nj11Ve5//77CQsL8/Vw/N7l9dRxen1sNhuvvPIK1dXV\nLFq0iK+//trXQ2qXNFUa4GJjYwGIiopi1KhRHD582Mcj6hiioqIoLS0F3PfD6B7C6xMdHY3NZsNm\nszF16lS++uorXw/J7zidTl599VXGjx/PmDFjAB2n16O5euo4tUaXLl0YNGgQhw4doqamhoaGBsAd\neXnh36xApsYtgNXV1VFbW9v49a5du+jZs6ePR9UxpKWl8emnnwLw6aefMmrUKB+PyL9daC4AcnJy\n6NGjhw9H439M0+Stt96iW7du3HbbbY2v6zi9Nleqp47Ta1dRUUF1dTXgfsJ09+7ddOvWjcGDB7Np\n0yYAsrKyPOIyA5GeKg1gZ86cYdGiRYD7ZtBvf/vbzJ4928ej8j+vv/46+/bto7KykqioKO6++25G\njRrF4sWLKSoqIi4ujp/+9Ke616WFmqvn3r17ycvLwzAM4uPjefjhhxvvzZJvduDAAZ577jl69uyJ\nYRiAe6mKfv366Ti9Bleq58aNG3WcXqNjx46xZMkSXC4XpmmSnp7OnDlzOHPmjMdyIMHBwb4erk+p\ncRMRERHxE5oqFREREfETatxERERE/IQaNxERERE/ocZNRERExE+ocRMRERHxE2rcRMTnioqKmDt3\nLi6Xy9dDuW7z5s1j165dbfKzn3/+edatW3fdP8c0Td58800eeOABnnnmGQtGJiLeosgrEfG5uLg4\nVqxY4ethBIwDBw6wa9culi5d2hjsLSL+QVfcREQCTGFhIfHx8WraRPyQrriJSJuZN28eN998M599\n9hlnzpwhIyODe++9lzfffJMDBw7Qr18/nnzySWpqanjsscf4y1/+gt1u5/nnn2fAgAHs3buXY8eO\nkZqayuOPP37VLM1z587x1ltvsWPHDlwuF0lJSTz11FNER0ezYcMGPv74Y4qLi4mMjOQ73/kO06dP\nB2Dv3r288cYb3HrrraxevRqbzcYPf/hDgoKCeOedd6ioqOD2229vTBVZuXIlJ06cwGazsX37dpKS\nknjkkUfo3bu3x5hcLhcff/wx69ato7q6miFDhvDwww8THh5+1fG21Pr161m9ejVlZWX07duXhx9+\nmPj4eACWL19OTk4ONTU1JCYmcv/99zNw4EDWr1/PsmXLcDqdzJ07l9tvv5277767FX+qIuJL54a1\nxAAABOdJREFUatxEpE1t3ryZX/3qV7hcLn75y1+Sl5fHj3/8Y7p3786CBQv45JNPmDhxosfnNm7c\nyDPPPENcXBwLFixg9erVfO9737vifj799FNqampYunQpwcHB5OXlERISArjD1J966ikSEhLYv38/\nCxYsICUlheTkZADKysqor6/nrbfeIisri9/97ncMGzaMhQsXUlRUxNNPP824ceNISEgAYOvWrTzx\nxBPMnz+ftWvX8sorr/Db3/6WoKBLT6mffPIJW7Zs4fnnnycyMpLly5fzxz/+kZ/85CdXHW9L5OTk\nsGrVKp566imSkpL48MMP+e1vf8uLL74IQEpKCnPmzCEsLIy1a9fy2muvsWTJEqZMmYLNZmPdunW8\n8MILLd6fiLQPmioVkTZ1yy23EB0dTWxsLAMGDKBv37706dOH4OBgRo8ezdGjR5v93KRJk+jatSsh\nISGkp6eTl5d31f3Y7Xaqqqo4ffo0NpuN5ORkwsLCABgxYgSJiYkYhsGgQYMYNmwYBw4cuOSzs2fP\nJigoiHHjxlFZWcmMGTPo3LkzPXr0oHv37hw7dqxx++TkZMaOHUtQUBC33XYb9fX1HDp0yGNMmZmZ\n3HPPPTgcDoKDg7nrrrvYvHkzDQ0NVx1vS2RmZjJr1iy6d++O3W5n1qxZ5OXlUVhYCMCECROIiIjA\nbrdz++2343Q6yc/Pb/HPF5H2SVfcRKRNRUVFNX4dEhLi8f3Zs2eb/VzTKcNOnTpRV1d31f1MmDCB\n4uJiXn/9dWpqahg/fjz33HMPQUFBbN++nQ8++ID8/HxM0+Ts2bP07Nmz8bMRERHYbLbGMTU37qb7\ndzgcjV/bbDYcDgelpaUeYyosLGTRokWNQeQXti8vL7/qeFuisLCQ5cuX86c//anxNdM0KSkpIT4+\nntWrV7N+/XpKSkowDIPa2loqKytb9LNFpP1S4yYiHUJQUBB33XUXd911FwUFBfzmN7+ha9eujB8/\nnldffZXHHnuMtLQ0goKCePnll69rX8XFxY1fu1wuiouLiYmJ8djO4XDwyCOPMGDAgGZ/TnPjnTJl\nSovGEBcXx+zZsxk/frzHe/v37+ejjz7iueeeo3v37thsNh544AFM02zhbygi7ZWmSkWkQ9izZw/H\njx/H5XIRFhZGUFAQNpsNp9NJfX09kZGR2O12tm/fft3rrB05cqRxynPt2rUEBwfTr18/j+2mT5/O\nX//618bpy4qKCrZs2XLV8bbU9OnT+fDDDzlx4gQANTU1fPHFFwDU1tZit9uJjIzE5XLxwQcfUFNT\nc12/s4i0D7riJiIdQllZGX/4wx8oKSkhNDSU9PR0xo8fj91u54EHHmDx4sXU19czcuRI0tLSrmtf\naWlpZGdns2TJEhITE/nZz37W7BTnjBkzAHjxxRcpLS0lKiqK9PR0Ro0adcXxttTo0aOpq6vj9ddf\np6ioiLCwMIYOHUp6ejrDhw9n+PDhPPHEE3Tq1ImZM2cSFxd3Xb+ziLQPhqlr5yIiLbZy5UpOnz7N\n448/7uuhiEgA0lSpiIiIiJ/QVKmI+I3PP/+c3//+9x6vx8fH89prr/lgRNabO3dus68/++yzDBw4\n0MujEZH2RlOlIiIiIn5CU6UiIiIifkKNm4iIiIifUOMmIiIi4ifUuImIiIj4CTVuIiIiIn5CjZuI\niIiIn/j/3XPkjTlJzpEAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f13a679add8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(10, 6))\n",
    "plt.plot(min_samples, train_score, 'o-', linewidth=3, label='train')\n",
    "plt.plot(min_samples, test_score, 's-', linewidth=3, label='test')\n",
    "plt.xlabel('min_samples_leaf')\n",
    "plt.ylabel('score')\n",
    "plt.ylim(0.9, 1)\n",
    "plt.legend()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "What does this all mean? Refer to Chapter 5 for the answers."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<!--NAVIGATION-->\n",
    "< [Building Our First Decision Tree](05.01-Building-Our-First-Decision-Tree.ipynb) | [Contents](../README.md) | [Using Decision Trees for Regression](05.03-Using-Decision-Trees-for-Regression.ipynb) >"
   ]
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
